<?php

namespace app\common\model\info;

use app\common\model\BaseModel;

/**
 * 内容模型
 */
class Info extends BaseModel
{
    protected $name = 'info';
    protected $pk = 'info_id';
    protected $append = ['day', 'year'];

    /**
     * 获取日
     */
    public function getDayAttr($value, $data)
    {
        return $data['release_time'] ? date('d', $data['release_time']) : '';
    }

    /**
     * 获取年月
     */
    public function getYearAttr($value, $data)
    {
        return $data['release_time'] ? date('Y-m', $data['release_time']) : '';
    }

    /**
     * 设置发布时间
     */
    public function setReleaseTimeAttr($value)
    {
        return $value ? strtotime($value) : 0;
    }

    /**
     * 获取发布时间
     */
    public function getReleaseTimeAttr($value)
    {
        return $value ? date('Y-m-d H:i:s', $value) : '';
    }

    /**
     * 关联栏目
     * @return \think\model\relation\BelongsTo
     */
    public function menu()
    {
        return $this->BelongsTo("app\\common\\model\\menu\\Menu", 'menu_id', 'menu_id');
    }

    /**
     * 关联内容模型
     * @return \think\model\relation\BelongsTo
     */
    public function mould()
    {
        return $this->BelongsTo("app\\common\\model\\mould\\Mould", 'mould_id', 'mould_id');
    }

    /**
     * 关联图片表
     */
    public function images()
    {
        return $this->hasMany('app\\common\\model\\info\\InfoImage', 'info_id', 'info_id')->order(['id' => 'asc']);
    }

    /**
     * 详情
     * @param $info_id
     */
    public static function detail($info_id)
    {
        return self::with(['images'])->find($info_id);
    }

    /**
     * 获取单页详情
     */
    public static function getSingleDetail($menu_id)
    {
        return (new static())->with(['mould'])->where('menu_id', '=', $menu_id)->where('is_delete', '=', 0)->find();
    }
}
